ラズパイ メモ

  Raspberry Pi 製品情報 → URL
  Raspberry Pi Datasheets → URL
  Pico/Pico W Documentation → URL
  RP2040 Datasheet → URL
   Raspberry Pi Documentation C/C++ SDK → URL
           同 Hardware APIs, Networking Libraries etc
     
  pico/pico W 用 C/C++開発環境(Windows PC + VS code)
    1. Getting started with Raspberry Pi Pico (build-date: 2023-06-14、build-version: a6fe703-clean 以降)を開く
 同名の古いバージョンのpdfではインストールするファイルが複数になってしまうので注意すること。
    2. 上記pdfの、Chapter 9. Building on other platforms」→ 「9.2. Building on MS Windows」→9.2.1. Installing the Toolchainの download the latestをクリックして最新の(例)pico-setup-windows-x64-standalone.exe などをダウンロードしてインストールする。
 インストールが成功すると
  ① C:\Program Filesの下にRasberry Pi\Pico SDK v1.5.1と云うフォルダが生成されその中にpico-sdkフォルダをはじめ環境構築に必要なファイルが一式生成される。

  ②  デスクトップにはPico - Visual Studio Codeと云う名前のVisual Studioのアイコンが生成される。 以下に示すように、このアイコンはWindows Power Shellからの起動となっている。
 C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File "C:\Program Files\Raspberry Pi\Pico SDK v1.5.1\pico-code.ps1" 
 すなわち 以下の項目などが、複雑な起動設定が可能な Windows Power Shellなどでの起動で設定されたことから、これらの設定・操作が不要となった可能性となった可能性があります。 理由はともあれ大変使いやすくなりました。 次のアップデートではVisual Studio でもpico/pico Wが開発できるようになってほしいですね
 従来VS codeの中でやってた
  ・ pico-sdkへのパス設定(→ CMake:Configure Environmentで PICO_SDK_PATH  ..\..\pico-sdk 設定)
  ・ コンパイラにLinux系のgccコンパイラを指定→ (CMake:Configure Environmentで NMake Makefiles 設定)
 また 
  ・ Visual Studioに含まれるC/C++などの開発ツールと同じPATH環境にするために、Develper command promptのコマンドラインからVS Codeを立ち上げていた。
 ③ Rasberry PiPico SDK v1.5.1 と云ったプログラム名でWindowsのコントロールパネルのプログラムと機能のページに表示され、1つのアプリケーションの扱いとなっている。


<追記> Pico SDK v1.5.1\pico-examples.zip の解凍先  → "C:\Users\pd5y-\OneDrive\デスクトップ\pico-examples"
  *.pyファイル
      Pico には複数のパイソンファイルが書き込める。 ファイル名に特別な制限はない。空白可、先頭に数字可、 日本語可
  (例) main.py,  Led Free run.py, 1secOn_3secOff LedFreerun.py,  LED 点滅.py
 但し、Pico単体で起動できるプログラムは main.pyのみである。
  RPI-RP2フォルダ
    ・ Pico内部のフォルダである。 BOOTSELボタンを押しながらUSBケーブルを差し込んでPCと接続すると自動的にRPI-RP2フォルダが開きPCのエクスプローラなどから見える。 ( → BOOTSELボタンを押しながら接続すると、PCからストレージデバイスとして認識される。)
・ このRPI-RP2フォルダにMicroPython UF2ファイル(MicroPython実行用ファームウェア)を書き込む(コピーする)と Picoの内部に書き込まれた*.pyファイルが実行できるようになる。 初期化ファイルflash_nuke.uf2を追加書き込みすることにより、MicroPython実行用UF2ファイルを消去して初期化できる。
・ Thonyから RPI-RP2フォルダにMicroPythonファームウェアを書き込む場合もBOOTSELボタンを押しながらUSB接続をする必要がある。
・ *.pyファイルが書き込まれるフォルダはRPI-RP2フォルダではない。 
・ ストレージモードのPicoを接続した状態でWindowsPCを起動すると、長時間かかる。起動できない。待てない程時間がかかる。
  pico/pico W のファームウェアを初期化する方法
    picoのファームウェア内のファイルをすべて消去して 初期化する方法
  → flash_nuke.uf2 ファイルをRPI-RP2フォルダに書き込む
    (最新のflash_nuke.uf2 ファイルの入手先: Resetting Flash memory on URL
 (注) C/C++、Arduino 、microPython間等 デバイスの開発言語変更する場合は はじめにまず必ずこのflash_nuke.uf2ファイルで初期化すること。
   例: C/C++言語で使用後のpico W をmicroPhthon言語で使用する場合、 flash_nuke.uf2で初期化後、下記のmicroPython 実行環境設定用ファームウェア(RPI_PICO_W-20240105-v1.22.1.uf2など)を書き込む必要がある。
  microPython 実行環境設定用ファームウェア
     microPython 実行環境設定用ファームウェア
 ★ microPythonを使う場合、新規購入のpico/pico Wへの書き込み必須、尚、C/C++だけで使うなら不要)
 ★ pico と pico Wで共用
→ MicroPython ダウンロードページ: URL
→ ファームウェア(本体 ver.1.22.1 2024.01.05版):  RPI_PICO_W-20240105-v1.22.1.uf2  //★頻繁(毎月のように)アップデートされている
  ローカル Python 3.11
     ここで云うローカルとは、"ユーザーPC"のことである。 すなわち "ユーザーのPC環境上で動作する Version 3.11のPython" と云う意味である。 したがって 自分のWindowsPC or LinuxPC上でThonyやVSCodeを使ってPythonを実行する場合 ローカルPythonをこれらのIDEにインストールして設定しておく必要がある。
(例) Thonyの場合
  ターゲット用 Python
    Pico、 Pico W などのターゲットを動作させる場合は ターゲット用のPythonを使用する。すなわち ターゲット用のPythonに設定を変更し、更にターゲットとの通信の設定も行う必要がある。
(例) ターゲットボード Pico、 Pico W で、IDEが Thonyの場合
① 実行 →
   インタプリタ設定
②インタプリタ: 
   MicroPython(Raspberry Pi Pico)を選択
 ポートかRPEL:
   Board CDC @COM7(自動選択)
 (注)REPL (Read-Eval-Print Loop): インタープリタの一種。  入力・評価・出力のループのこと。インタプリタにおいて、ユーザーとインタプリタが対話的にコード片を実行できるもの。
  Thony: ターゲットボードとの接続 及びコンパイル&実行
   
① 右下のメニューボタンMicroPython (Raspberry Pi Pico) COM7右クリックする ②上側にメニューが表示去れるのでメニューバー MicroPython (Raspberry Pi Picol Board CDBoard CDC @ COM7を右クリックで選択する ③左上のアイコンバーの コンパイル&ターゲット実行アイコンと 実行停止アイコンが有効となる
 
④ コンパイル&ターゲット実行アイコンをクリックすると
右下のシェルに
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot

が表示され、同時にターゲットが実行され LEDの点滅が始まる
⑤実行停止アイコンをクリックすると
シェルに

Traceback (most recent call last):
File "<stdin>", line 10, in <module>
KeyboardInterrupt:
MPY: soft reboot
MicroPython v1.21.0 on 2023-10-06; Raspberry Pi Pico W with RP2040
Type "help()" for more information.

の表示が現れ、ターゲットの実行が停止され LEDが消灯状態となる。
 
 
  Thony: picoへの書き込み
   
1.書き込み可能状態
・通信確立
・プログラム停止、実行可
・pico側main.py可視
2.
[ファイル]→[名前を付けて保存]

★ Booselボタン操作不要
3. 
Raspberry Pi pico を選択
4. 
main.pyを上書き
 
       
5.
上書き完了
→実行可能状態
6.別のファイルを開き書き込みへ
[ファイル]→[名前を付けて保存]
★ Booselボタン操作不要
7.
Raspberry Pi pico を選択
8.
main.pyを上書き
9.
上書き完了→実行可能状態
10.
実行
11.
実行確認
 
 
  thony: パッケージ追加
   
1.ツール→パッケージ管理 2.パッケージ名などを入力してライブラリを探し、ZIPファイルなどをダウロード 3.ローカルファイルからインストールのhereをクリックしてインストール
  VS Code のメニューバーを表示させる
   
 3本線アイコンを右クリックしてドロップダウンリストから ファイル → ユーザ設定 → 設定 ② 検索用テキストボックスに、"メニュー"と打鍵、Menu Bar Visibility のコンボボックスから "visible"を選択 またTitle Bar Styleのコンボボックスから "native"を選択する。VSCodeアプリの再起動確認のダイアログが現れるので "再起動"をクリックするダイアログが現れない場合は、拡張機能設定タブをXで閉じた後、メニューの[ファイル]→保存で保存処理を行う ③ メニューバーが表示された画面が現れる

  VS Code: Theme変更
    File → Preference→ Theme → ColorTheme
(例) Light(Visual Studio)
  VS Codeのクリーンアンインストール
    → URL
Windows - Delete \APPDATA\Roaming\Code and \ユーザ名\.vscode.
<参考> Windowsのシステムから直接環境変数を削除したり変更すると その後VS Code側で環境変数を変えてもWindowsの環境変数が変更できなくなってしまう。 この場合上記のクリーンアンインストール後の再インストールが必要となる。
  VS Code:  行単位、ブロック単位のコメントアウトの実行/解除
    // で コメントアウトする場合 →  コメントアウトしたい行をマウスで選択後、 Ctr + / を行う。((注)★テンキーの / は除く)
/*  */ で コメントアウトする場合 → コメントアウトしたい行をまうすで選択後、 Shift + Alt + A を行う
  VS code: [File] → [Open Folder]で最初に開くフォルダを指定する方法
    メニューバーの[File] → [Preferences] →[Settings] で開いたダイアログの検索欄に Files › Dialog: Default Path を入力する。Files › Dialog: Default Path の項のパスを記載する。 尚、例のようにパスに日本語が含まれる場合はパスが入力できないので、 英語版VS codeから 日本語版VS codeに変更して、日本語を含むパスを入力して、その後英語版VS codeに戻る。
例 [File] → [Open Folder] から 下記パスの CCppフォルダを開いた場合
C:\Users\pd5y-\OneDrive\ドキュメント\PicoX\CCpp
  VS codeで作成した実行ファイル*uf2をRPI-RP2フォルダにコピーする方法1
    ①Windows 10のエクスプローラを開き移動先のフォルダをひらく
②VS codeのエクスプローラで*.uf2を選択、これをWindows 10のエクスプローラを開き移動先フォルダまでドラッグする。
  VS codeで作成した実行ファイル*utfをRPI-RP2フォルダにコピーする方法2
    ①VS codeのエクスプローラで*.uf2を選択、右クリックしてドロップダウンリストの中から"エクスプローラで表示する"を選択する。
②表示されたエクスプローラの*.uf2をコピーする。
③エクスプローラのRPI-RP2フォルダ内にペーストする。
  ■  VS CodeによるC言語IDE
    → URL
  VS Code のoutput欄に文字化けが発生する
     Windowsの「コントールパネル」>「地域」をクリックします。 「管理タブ」>「システムロケールの変更」をクリックします。 「ワールドワイド言語サポートで Unicode UTF-8 を使用」にチェックし、「OK」をクリックします。 その後、再起動をすると設定が反映され、文字化けが解消される。
  VS codeの立ち上げ
     VS codeをC/C++などのエディタとして使う場合は Develper command promptのコマンドラインから codeと打鍵して立ち上げる。Develper command promptから立ち上げることによりVisual Studioに含まれるC/C++などの開発ツールと同じPATH環境となり、コンパイラclやリンカーlinkなどのコマンドが使えるようになる。(→自分でパスを通す必要がなくなる) VS code立ち上げ位置(パス)すなわちcodeコマンドの打鍵はDevelper command prompt下であればどこでもよい。
  VS codeで Cmake: Generatorに NMake Makefilesを設定する意味
     Generatorでは、ビルトツールを設定する。 ビルトツールとは プロジェクトファイルを作成して(プロジェクトファイルを作成しないものもある)、ソースコードをコンパイルして、所要のファイルをリンクして、実行ファイルを作成するツールである。
 NMake Makefilesは、Unix系のビルトツールである。単にビルトツールmakeと呼ばれることもある。コンパイル、リンク、インストール等のルールを記述したテキストファイル (makefile) に従って、これらの作業を自動的に行う。プロジェクトファイルを作成しても、しなくてもよい。 picoのC言語のコードをコンパイルする場合、生成される実行ファイルはLinuxのgccコンパイラでコンパイルされた実行ファイル.uf2形式が生成される必要がある。 すなわちGeneratorに NMake Makefilesを設定することは、Makefilesはgccが生成するプロジェクトファイル名であるので コンパイラーはLinuxのgccを指定することを意味する。
 対応するコマンド表記: cmake -G "NMake Makefiles" ..

 ビルトツールとして、Windows用としてはVisual Studioの*.slnプロジェクト、Apple用としては *.xcodeprojプロジェクトなどがある。
VS code(CMAKE)で設定できるその他のgenerator: 一覧Borland Makefiles  Visual Studio 17 2022 ……)
 対応するコマンド表記(例): cmake -G "Visual Studio 17 2022 Win64" ..
  VScode のエクスプローラのファイルの並び順を変更する
    ファイル→ユーザ設定→設定から
Explorer: Sort Order Lexicographic Options を選択後
default → unicodeなどを選択する。
  VScode: <style>タグ内に コメントアウト<!-- -->を記述すると コメントアウト部が緑色にはならず、黒色となる。
   
<style></style>の間に
<!-- -->がない場合
<style></style>の間に
<!-- -->がある場合
 
 尚、<style></style>の間に<!-- -->がある場合でもコメントアウト機能は有効である。 バグと云うよりMSが意図してこのようにしている可能性もある。
  ■  VScode: 日本語モードに戻す
    アップデートなどで英語モードになってしまった場合などに、元の日本語モードに戻す方法
1. メニューバーの[view] → [command pallet]を開く
2. config lang を打鍵、Configure Display Language を選択
3.
 英語表記されている状態ではあるが、 Englishを選択
4. Restartのダイアログがでるので 一度 VScodeをRestartする
5. 再度 command palletを開き、config lang を打鍵後、Configure Display Language を選択
6. 日本語を選択して Restartする
  VScode/JavaScript:  console.log( )の表示1
   
1. ソースコード記述 2. ブラウザOpen 3. デベロッパーツールショートカットF12打鍵 4. 日本語へ切り替え 5. デベロッパーツール部拡大 6. コンソールタブへ切り替え
7. 不要部削除1 8.不要部削除2 9. 再実行アイコンをクリックして不要項目を削除
(すべて初期状態に戻る場合:)
10.完了    
     
 
  VScode/JavaScript:  console.log( )の表示2
   
1.  ターゲット*.html /console.log()を表示 2. Live ServerでGoogle Chromeを表示 3. ブラウザGoogle Chromeで*.htmlを表示 4. ショートカットキー F12を打鍵して、コンソール画面を表示
5. 右クリックしてドロップダウンリストからClear Consoleを選択して、コンソール画面をクリーンにする 6. コンソール画面がクリアされたことを確認したら、ブラウザに表示されているbuttonボタンをクリックして、JavaScriptを実行する。 7. console.log('サイコロの
値は'
+ num + 'です');の実行結果"サイコロの値は2です"が表示される
 
 
  VScode/JavaScript:  デバックコンソール画面
    <Live Previewプラグインのデバックコンソール画面>
・表示
1.ソースコード記述 2. セカンダリサイドバーを選択 3.デバッグコンソール画面の表示
・デバック実行
1.実行前  2. 実行後 
Google Chrome画面が表示されてしまうことがある
★ "本日は晴天なり2"がコンソール画面に表示されていなことに注意
 index.htmlファイル  jsファイル

(注) Live Previewプラグイン:
 1.アクティビティバーからLive Previewを選択してインストール
 2. 変更設定項目
  Auto Refresh Preview: Neverに設定変更
  Debug On External Preview: Debug On External Previewにチェックを追加。
  Open Preview Target:  External Browserに設定変更
  ■  VScode/JavaScript:  GoogleCHromeのコンソール画面によるデバック
   
1.デバック実行前
 index.htmlファイル
2.デバック実行前
  jsファイル
3. ブラウザ起動 4.Google Chrome起動完了 5. F12打鍵によりデベロッパーツールを起動してコンソール画面を表示 6. 再実行アイコンをクリックして不要項目を削除
★ "本日は晴天なり2"がコンソール画面に表示されていなことに注意
  gcc-arm-none-eabi
     検索キーワードとして gcc-arm-none-eabi を使うと、picoのC/C++最新クロスコンパイラを検索することができる。(理由:pico用 ARM GCC Compilerダウンロードファイル名にgcc-arm-none-eabiが含まれている。 (例) gcc-arm-none-eabi-10.3-2021.10-win32.exe

(注)
・ Raspberry Pi picoでは、RP2040(ARM - CortexM0+)が使われている。
・ EABI (Embedded Application Binary Interface): 組み込みシステムのソフトウェアについてのファイルフォーマット、データ型、レジスタ使用法、スタックフレームの構成、関数の引数渡し方法などについての規約を意味する。PowerPC、ARM、MIPSなどで使われている
  RP2040 Hardware APIs
     → URL
  RP2040 High Level APIs
     → URL
  相対パス表記
     作業フォルダからみたファイルやフォルダの位置を記載する方法に相対パス表記がある。
・作業フォルダより、1階層上のフォルダDir1、2階層上のフォルダDir2は、3階層上のフォルダDir3は それぞれ ../、../../、../../../ と表記する
 ../、../../、../../../は、../Dir1、../../Dir2、../../../Dir3の省略表現と見ることができる。
・作業フォルダより、1階層上の他のフォルダDir1A、2階層上のフォルダDir2Aは それぞれ ../../Dir1A、../../../Dir2A と表記する。


(例1)
 picoのSDKフォルダpico-sdkは、以下のフォルダ構成で使用されることがある。
この場合buildフォルダ内からpico-sdkフォルダを呼び出す場合 相対パスをつかって ../../pico-sdk で呼び出すことができる。
└─workspace
      ├─myProject
      │   │  CMakeLists.txt
      │   │  main.c
      │   │  pico_sdk_import.cmake
      │   │
      │   └─build
      └─pico-sdk

(例2) root/  └ Dir0/    └ Dir1/      ├ Dir2/      │ └ Dir3/      │    └ Dir4/      │      └ MyProj(開発用ディレクトリ)      │  app.c      │      └ Dir2A
app.h app.c のコードの中から、app.hを呼び出す場合 #include "../../../../Dir2A/app.h"
  となる。
     ★ pico-examplesのサンプルプログラムは、pico-sdkフォルダとプロジェクトファイルのフォルダが同一フォルダ内にあることを前提として作成されているのでこれと異なる構成のフォルダ関係にある場合は ソースコードを修正する必要がある。
 ★ pico-sdkフォルダの内部構成から推察するに、 #include "pico/stdlib.h"の#include "pico/は pico用のコンパイラからみて "単なるC言語扱いではなく、"特殊なコンパイラ命令"と解釈されるようである。
  pico-sdkフォルダ 及びVS codでのパスの通し方
    ・ pico-sdkフォルダには ARM GCC Compiler(gcc-arm-none-eabi-10.3-2021.10-win32.exeなど)がRP204などの実行ファイルなどをビルド・作成するに際し必要とするヘッダファイル,ライブラリ, ビルドシステムのフレームワークなどが収納されている。 
・ pico のソースコードをコンパイルする時、PICO_SDK_PATHが呼ばれた場合pico-sdkフォルダにパスを通す必要がある。 Visual Studio CodeなどにプラグインされたCMakeを使う場合は  Cmake : Configure Environmentで Item項 に PICO_SDK_PATHを、Value項に ../../pico-sdk (buildフォルダから見た相対パス)を設定する
  CMake (競合品:Bazel, Meson, Premake他)
     共用のソースコードを異なる環境(Windows、Linux、Mac)でビルトするツール。 CMakeのビルドプロセスは2段階からなる。
1. *.sln(Windows例),  *.xcodeproj(Mac例),  Makefile(Linux例)などのプロジェクトファイルを 設定ファイルCMakeLists.txtにもとづき生成する。
2. 生成したプロジェクトファイルを使ってプラットフォームネイティブなビルドツールにより実際のビルトを行い、実行ファイルを生成する。 
  ■  CMake : Generator
     Generatorは、生成するビルトツール(プロジェクトファイルの種類など)をあらわす。 Windows用としてはVisual Studioの*.slnプロジェクト、Apple用としては *.xcodeprojプロジェクト、Linux用としてはMakefilesプロジェクトを指定できる。 ビルトツールmakeでは、プロジェクトがない場合もある。
 使用しているPCからどのようなビルトツールが使用できるかの調べる場合、cmake --helpコマンドを打鍵すると一覧が表示される。
(→ URL
 尚、このコマンドを省略すると、各OSにおけるデフォルトのGeneratorが選択されます。
(使用例1) Generatorとして、Visual Studio 17 2022を指定したい場合
 cmake .. -G"Visual Studio 17 2022"

(使用例2) Generatorとして、Unix Makefilesを指定したい場合
 cmake .. -G"NMake Makefiles"

(注) 例ではbuildフォルダの中で cmake .. -G"……"が実行されているとしているので、CMaleLists.txtは1階層上位にあることから .. が必要をなる。
<プロジェクトディレクトリ>
|- main.cpp
|- CMakeLists.txt
|- build/
   Picotool
     ラズパイPico用のRaspberry Pi Pico C/C++ SDK上で生成されたバイナリオブジェクトから情報を取り出すためのツール。 オブジェクトファイルから情報を取得できるだけでなく、実機のFlashメモリからも情報を取得できる。 Flashメモリを読み出してオブジェクトファイルとしてセーブしたり、ファイルをFlashに書き込むことも可能。 実行ファイルにPicotoolで書き込まれた情報は プログラムの実行には影響を与えないソースコードのコメント行のようなものと云える。
(例) ソースコードで以下のように記述することにより、picoのフラッシュに実行ファイルと共に書き込むことができる。
bi_decl(bi_program_description("This binary was compiled as Test version June 27th, 2023."));
  Ninja
     高速な動作を重視した小さなビルドシステムである。より高レベルなビルドシステムによってビルドファイルを生成するように設計されている点と、可能な限りビルドを高速に行うように設計されている点が他のビルドシステムと大きく異なる点である。NinjaはMakeの置き換えを意図している。
  Make
     プログラムのビルド作業を自動化するツール。コンパイル、リンク、インストール等のルールを記述したテキストファイル (makefile) に従って、これらの作業を自動的に行う。
  Visual Studioによるpico C言語 IDE
      → URL
  Aruduinoを使用したC言語環境 「Raspberry Pi Pico/RP2040」 by Philhower
    開発環境として設定するボードには公式の 「Arduino Mbed OS RP2040 Boards」とPhilhowerの「Raspberry Pi Pico/RP2040」 がある。
公式の「Arduino Mbed OS RP2040 Boards」は初期状態でインストールできるため手軽ですが、 他のマイコンボードで作成したプログラムがそのままコンパイルできなかったり、修正も困難な場合がある。
  MSYS2(Minimal SYStem2, えむしすつー)
     MSYS2 は,Windows 上で UNIX/Linux と同じ UNIX風シェル環境を提供するプラットフォーム。この上に コンパイラ環境MinGW などを導入すれば,gcc/g++ コンパイラや各種開発ツールを用いてシェル環境上で C/C++ 言語プログラムを開発が可能となる。
  WSL2 (Windows Subsystem for Linux)
     マイクロソフトが用意するWindows上でLinuxを動作させるための実行環境のVer.2
  OpenOCD(On Chip Debuger)
     TAG/SWDな どの CPUやSoC上のデバッグ端子を使ったオープン ソースのデバッガ・ソフトウェア、オリジナルはLinux
  PicoProbe
     RaspberryPi Picoをデバッグ機材として使用するプログラム。
  pico/pico W 用 開発環境 Arduino
    ・ C/C++を変更・拡張したArduino言語でも pico/pico Wを開発できる。 この場合 Windows PC 上で完成度の高いAruduino IDEが使用できることと Arduinoのライブラリが多々あると云う利点がある。 ArduinoライブラリはC/C++言語化が容易なので、C/C++プログラム上で使用も可能である。
・ Arduino言語によるpico/pico W の開発環境 → URL 
  pico/pico W  Arduinoでのコンパイル/書き込み手順
    1. アイコンバーのボードコンボボックスをクリックして、ダイアログの中から検索を行い、picoを選択する。
2. ✓ のVerify アイコンをクリックしてコンパイルをおこなう
3. picoをストレージモードにする。(BOOTSEL ボタンを押しながらUSB接続を実施 他)、 RPI-RP2フォルダがPCのルートディレクトリに生成されが、このフォルダ内に *.uf2ファイルをコピーする必要があるが、次の4.の操作を行うとAruduino IDEが自動で*.uf2コピーを実行してくれる。
4. → のUp loadアイコンをクリックすると、picoへの書き込みが実行される。
  尚、この時picoがストレージモードになっていないと以下のようなエラーメッセージがでることがある。
Failed uploading: uploading error: exit status 1



  Pimoroni(ピモロニ)
    PimoroniはRaspberry Piの関連ハードウェアなどを開発し販売しているイギリスのサイト
microPythonの派生もつくっている → URL
  Arduino IDE + picoで*.uf2ファイルを表示させる方法
    デフォルトでは*.uf2を含むbuildフォルダは表示されないので、以下の設定を行う必要がある。
 ・メニュー[Sketch] → [Export Binary] をクリックすうるとエクスプローラに *.uf2ファイルなどを内臓したbuildフォルダが生成される。
 ・メニュー[Sketch] → [Show Sketch Folder]をクリックするとエクスプローラが起動して buildフォルダが表示される
  Arduino IDE: 新ファイルのつくり方
   
ファイル命名、保存 ファイル名に半角スペースはNG 生成ファイルの表示 ファイルと同名のフォルダに.inoが生成される
 
  pico W 搬送波2.4GHzとバンドステアリング機能対応
     WiFiルータ、スマホなどには、には電波強度や対応帯域を判別し、2.4GHz帯と5GHz帯の混雑していない周波数帯へ自動で振り分けるバンドステアリング機能がついていることがほとんどである。 pico WのWiFi搬送波は2.4GHz固定である。 pico W、スマホ、ルータ間でWiFi通信をしている途中に2.4GHz/5GHzが勝手に切り替わるとWiFi通信が途切れてしまう。 ルータのバンドステアリング機能をOFF、スマホWiFi周波数固定の対応が必要となる。 Androidでは5GHzへの自動接続OFFでも2.4GHzから自動で接続しまうが、何度が削除すると5GHzには自動接続しなくなるようである。
  Android: WiFiアクセスポイントの IPアドレス&デフォルトゲートウェイ(諸元詳細)設定方法
   
1.設定→ネットワークとインターネット
最下部の保存済みネットワークを選択
2.設定したいネットワーク名称(SSID)を選択 3.右上の鉛筆アイコンをタップ 4.詳細設定をタップ 5.DHCPの右にある▼アイコンをタップ 6.表示されたドロップダウンリストから"静的"を選択 7.表示されるテキスト入力ラインに所要のIPアドレスを入力する
 
  APスキャン by pico W
    SSID: Service set ID/ENC: Encryption type/BSSID: Basic Service Set ID/CH: Channel/RSSI: Received Signal Strength Indicator
  pico W 無線 諸元
    <Wireless interface>
    Pico W contains an on-board 2.4GHz wireless interface using the Infineon CYW43439, which has the following features:
 ・ WiFi 4 (802.11n), Single-band (2.4 GHz)
 ・ WPA3
 ・ SoftAP (Up to 4 clients)

 ・ Bluetooth 5.2
 ・ Support for Bluetooth LE Central and Peripheral roles
 ・ Support Bluetooth Classic

The antenna is an onboard antenna licensed from ABRACON (formerly ProAnt). The wireless interface is connected via SPI to the RP2040.
Due to pin limitations, some of the wireless interface pins are shared. The CLK is shared with VSYS monitor, so onlywhen there isn't an SPI transaction in progress can VSYS be read via the ADC. The Infineon CYW43439 DIN/DOUT and IRQ all share one pin on the RP2040. Only when an SPI transaction isn't in progress is it suitable to check for IRQs. The interface typically runs at 33MHz.

For best wireless performance, the antenna should be in free space. For instance, putting metal under or close by the antenna can reduce its performance both in terms of gain and bandwidth. Adding grounded metal to the sides of the antenna can improve the antenna's bandwidth.

There are three GPIO pins from the CYW43439 that are used for other board functions and can easily be accessed via the SDK:
 ・ WL_GPIO2
    IP VBUS sense - high if VBUS is present, else low
 ・ WL_GPI01
    OP controls the on-board SMPS power save pin (Section 3.4)
 ・ WL_GPIOO
    OP connected to user LED
  onclickで複数関数を処理する
     ; で区切り、関数を追加する
(例)   <input type="button" value=" "onclick="Func1(); Func2()">
  Compilation error: missing terminating " character
     Raw String Literal の使用に関連している可能性があります。 → URL
  Arduino フォルダ構成
    C:\Users\xxxx-\AppData\Local\Programs\Arduino IDE\Arduino IDE.exe
C:\Users\xxxx-\AppData\Local\Arduino15\staging\packages\gcc-arm-none-eabi-7-2017-q4-major-win32-arduino1.zip
C:\Users\xxxx-\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.1.0\platform.txt
  M5 Stack Basic 工場出荷状態へ戻す方法
   
1.M5Burnerのダウンロード  2.download ファイル選択 3.実行ファイルM5Burner.exeをクリック 4. メニューバーからcoreを、リストからStack-chan_bit (Basictのダウンロードを選択 5. BurnsをクリックするBasic内のファームウェアが起動、工場出荷時の画面が現れる
https://m5stack.com
/pages/download
  M5 Stack core2 工場出荷状態へ戻す方法
   
1.M5Burnerのダウンロード  2.download ファイル選択 3.実行ファイルM5Burner.exeをクリック 4. メニューバーからcore2&Touchを、リストからcore2 FactoryTestのダウンロードを選択 5. Burnsをクリックするとcore2内のファームウェアが起動、工場出荷時の画面が現れる
https://m5stack.com
/pages/download
   M5 Stack core2 for AWS工場出荷状態へ戻す方法
   
1.M5Burnerのダウンロード  2.download ファイル選択 3.実行ファイルM5Burner.exeをクリック 4. メニューバーからcore2&Touchを、リストからCore2_For_AWSのダウンロードを選択、ダウンロードが完了するとBurnボタンが表示される 5. Burnsをクリックするとcore2 for AWS内のファームウェアが起動、工場出荷時の画面が現れる
https://m5stack.com
/pages/download
  M5 Atom S3 工場出荷状態へ戻す方法
   
1.M5Burnerのダウンロード  2.download ファイル選択 3.実行ファイルM5Burner.exeをクリック 4. メニューバーからAtom S3hを、リストからATOMS3 UserDemを選択 5. Burnsをクリックするファームウェアが起動、工場出荷時の画面が現れる
https://m5stack.com
/pages/download
  生文字列リテラル(Raw string literals) in C++
    Rプレフィックスを付けた文字列リテラル内の丸カッコ( )で囲まれた部分は、エスケープシーケンス(‘ \n, \t, or \” ‘)が無視される。この機能を「生文字列リテラル (Raw string literals)」という。  → URL
たとえばJSON形式でデータを記述する場合、通常の文字列リテラルでは以下のように書くことになる:

std::string json = "{\"user_id\": 123, \"name\": \"Alice\"}";

文字列リテラル内にダブルクォーテーションを入力するために、多くのエスケープ文字\が必要となっている。このような状況で生文字列リテラルを使用することで、エスケープ文字をなくし、以下のように書ける:

std::string json = R"({"user_id": 123, "name": "Alice"})";     
  文字列リテラル
    文字列リテラルとは、0 文字以上の文字を二重引用符 ( " ) または単一引用符 ( ' ) で括ったものである。
C/C++では 二重引用符 ( " ) だけであるが、Java Scriptでは二重引用符 ( " ) と単一引用符 ( ' ) の両方がつかえる。
(例) 「"Hello World !!"」、「' Hello World !!'」
  Arduinoのボードライブラリの内部が破損して、コンパイルできなくなった場合の修復方法
    ボードマネージャのライブラリを削除しても解決しない場合は、エクスプローラで削除したいライブラフォルダを直接削除した後 ライブラリを再インストールする。 ライブラリパッケージがインストールされている場所:
"C:\Users\xxxxxx\AppData\Local\Arduino15\packages\rp2040"
   ■  SunFounder キャラクタ液晶(20文字 x 4行) I2C LCD2004
技術資料のURL: http://wiki.sunfounder.cc/index.php?title=I2C_LCD2004